package com.ds.infrastructure.hyperspace.common;

/**
 * @author  Weishaoying
 */
public interface Endpoint<T> {

    /**
     * Initialize endpoint
     */
    void init() throws Exception;

    /**
     * reload endpoint
     * @param endpointConfig
     */
    void reload(T endpointConfig) throws Exception;

    /**
     * Get current EndpointConfig
     * @return
     */
    T getEndpointConfig();

    /**
     * The name space is the identifier for endpoint
     * @return
     */
    String getNamespace();

}
